<?php

namespace catchAdmin\model;

class SysLabel extends ModelApp
{

    protected $append = [
        'company_type_name',
    ];


    ############################ 关系 start ###############################

    public function parent()
    {
        return $this
            ->hasOne(SysLabel::class, 'id', 'parent_id')
            ->bind([
                'parent_label_name' => 'label_name',
            ]);
    }

    ############################ 关系 end ###############################
    ############################ Attr start ###############################

    /**
     * company_type_name_list
     */
    public function getCompanyTypeNameList()
    {
        return [
            0   => '未注册',
            1   => '居间人',
            2   => '工程公司',
            3   => '物资工厂',
            4   => '设计公司',
            5   => '监理公司',
            6   => '劳务公司',
            7   => '物资贸易商',
            8   => '协会',
            100 => '招聘',
        ];
    }


    /**
     * company_type_name
     */
    public function getCompanyTypeNameAttr()
    {
        return $this->getCompanyTypeNameList()[$this->getOrigin('company_type')] ?? '';
    }

    ############################ Attr end ###############################
    ############################ search start ###############################

    public function searchLabelNameAttr($query, $value, $data)
    {
        $query->where('label_name', 'like', '%' . $value . '%');
    }


    public function searchCompanyTypeAttr($query, $value, $data)
    {
        $query->where('company_type', $value);
    }


    ############################ search end ###############################

    public function getLabelNameStr($id_arr)
    {
        if (empty($id_arr)) {
            return "";
        }

        $label_name = [];
        foreach ((new SysLabel())
                     ->whereIn('id', $id_arr)
                     ->select() as $item) {
            $label_name[] = $item['label_name'];
        }

        return implode('，', $label_name);
    }

}
